package com.company;

import java.util.Arrays;

public class copyOfDemo {
    public static void main(String[] args) {
        int[]  scores= new int[]{57,81,68,75,91};
        System.out.println("原数组内容如下：");

        for(int i=0; i<scores.length; i++) {
            // 将数组元素输出
            System.out.println(scores[i] + "\t");
        }
        // 定义一个新的数组，将scores数组中的5个元素复制过来
        // 同时保留3个内存空间供以后开发数组使用
        int[] newScores=(int[]) Arrays.copyOf(scores,8);
        // Object[] newSs = Arrays.copyOf(scores,8);
        System.out.println();
        System.out.println("\n复制的新数组内容如下：");

        // 循环遍历复制后的新数组
        for (int j=0; j<newScores.length; j++) {
            // 将新数组的元素输出
            System.out.println(newScores[j] + "\t");
        }

        /**
         * 在上述代码中，由于源数组 scores 的长度为 5，而要复制的新数组 newScores 的长度为 8，
         * 因此在将源数组中的 5 个元素复制完之后，会采用默认值填充剩余 3 个元素的内容。
         * 因为源数组 scores 的数据类型为 int，而使用 Arrays.copyOf(scores,8)
         * 方法复制数组之后返回的是 Object[] 类型，因此需要将 Object[] 数据类型强制转换为 int[] 类型。同时，也正因为 scores 的数据类型为 int，因此默认值为 0。
         */


    }
}
